home *** CD-ROM | disk | FTP | other *** search
/ Sprite 1984 - 1993 / Sprite 1984 - 1993.iso / src / lib / c / inet / RCS / inet_makeaddr.c,v < prev    next >
Text File  |  1988-06-20  |  1KB  |  63 lines

  1. head     1.1;
  2. access   ;
  3. symbols  ;
  4. locks    ; strict;
  5. comment  @ * @;
  6.  
  7.  
  8. 1.1
  9. date     88.06.20.09.44.32;  author ouster;  state Exp;
  10. branches ;
  11. next     ;
  12.  
  13.  
  14. desc
  15. @@
  16.  
  17.  
  18.  
  19. 1.1
  20. log
  21. @Initial revision
  22. @
  23. text
  24. @/*
  25.  * Copyright (c) 1983 Regents of the University of California.
  26.  * All rights reserved.
  27.  *
  28.  * Redistribution and use in source and binary forms are permitted
  29.  * provided that this notice is preserved and that due credit is given
  30.  * to the University of California at Berkeley. The name of the University
  31.  * may not be used to endorse or promote products derived from this
  32.  * software without specific prior written permission. This software
  33.  * is provided ``as is'' without express or implied warranty.
  34.  */
  35.  
  36. #if defined(LIBC_SCCS) && !defined(lint)
  37. static char sccsid[] = "@@(#)inet_makeaddr.c    5.2 (Berkeley) 3/7/88";
  38. #endif /* LIBC_SCCS and not lint */
  39.  
  40. #include <sys/types.h>
  41. #include <netinet/in.h>
  42.  
  43. /*
  44.  * Formulate an Internet address from network + host.  Used in
  45.  * building addresses stored in the ifnet structure.
  46.  */
  47. struct in_addr
  48. inet_makeaddr(net, host)
  49.     int net, host;
  50. {
  51.     u_long addr;
  52.  
  53.     if (net < 128)
  54.         addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST);
  55.     else if (net < 65536)
  56.         addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST);
  57.     else
  58.         addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST);
  59.     addr = htonl(addr);
  60.     return (*(struct in_addr *)&addr);
  61. }
  62. @
  63.